IntegrammaFEAT-STATS-AUTO · фаза дизайна
← Вернуться к прототипу

Проверка и трассировка

Каждый черновой тест-кейс (особенно negative/edge) положен на экранное состояние прототипа. Каждое требование R1–R22 имеет точку на экране; каждый элемент UI восходит к требованию. Решения DQ-1…6 — зафиксированы.

01 / Решения

Закрытые дизайн-вопросы DQ-1…6

Принято дизайнером. DQ-3 требует фиксации в дизайн-системе.

DQ-1
Нижняя навигация — принята

4 вкладки: Дашборд / Мероприятия / Подписки / Меню. Линейный drill раздел→список→карточка живёт внутри вкладок. Снимает перегрузку главной четырьмя типами.

DQ-2
Форма дельты R17

Процент крупно (знак + цвет), абсолют мелким рядом, подпись базы под ними. Видны обе формы — без выбора одной.

DQ-3 · уточнено
Деление на 0 в процентной дельте

Прошлый период = 0, текущий > 0 → показываем «0» крупно + абсолют «+N подп.» мелким (без бейджа «рост с нуля»). «∞» и «+100%» запрещены. Оба периода = 0 → прочерк «без активности · н/д». Финал.

DQ-4 · уточнено B-1
Две валюты на агрегатах

Стопкой везде: ₽ (violet) над € (emerald). Применяется в виджетах дашборда, в карточке «Итог», в строках списка мероприятий, в строках тарифов и в итоговой строке подписок. Колонки запрещены. Если в данных нет евро — выводится только ₽; в строках списка резервируется пустой слот высоты ₽-строки, чтобы соседние строки не «прыгали» (B-6).

DQ-5
Обрезка длинных названий

Списки — 1 строка + многоточие (CSS ellipsis, адаптивно к ширине, без жёсткого лимита символов). Карточка — полное имя, переносится в 2–3 строки.

DQ-6
Формат «Показать ещё»

Плашка-кнопка со счётчиком «показано N из M». Порция 20 (R21). При исчерпании списка кнопка скрывается.

02 / Состояния

Состояния для макетов → экран

Все состояния из дизайн-заметок имеют экранное представление. Подсостояния «Загрузка» объединены сознательно (B-8).

СостояниеГде в прототипеТребование
Загрузка · общий skeleton при первом заходе; спиннер на ⟳ при форсе; тихий кэш — без индикатора. Три подсостояния не различаем визуально (B-8, упрощение v1).ЗагрузкаNFR-1
Пусто на уровне разделовПусто · разделыR10
Пусто на уровне мероприятий (текст без «12 месяцев», B-2)Пусто · мероприятияR2 neg
Виджет с нулями (R10 edge, B-3): раздел без оплат в периоде агрегации — виджет не скрываетсяВиджет с нулямиR10 edge
Карточка без оплаченных заказовКарточка без заказовR10 · R3
Ошибка доступа (нет группы) — отдельный экранОтказ в доступеR8
Ошибка источника — последние данные + «устаревшие»Ошибка источникаNFR-1 · R9
Пустой поиск/фильтр — «ничего не найдено»Пустой поискR20 neg
Прочерк дельты — нет сопоставимого периода (нет базы)Дельта · прочеркR17
Деление на 0 в процентной дельте (DQ-3)Дельта · деление /0R17 · DQ-3
Дельта · оба = 0 (R17 edge, B-4): оба периода считаются, оба нулевые — отличается от «нет базы»Дельта · оба = 0R17 edge
Сетевая ошибка при обновлении — тост «не удалось обновить»Кнопка «Обновить» в режиме «Ошибка источника» → тостR7
Нет сети (оффлайн) — цифры не показываем, не выдаём устаревшее за актуальноеНет сетиNFR-6
03 / Тест-кейсы

Прогон черновых кейсов по макетам

Акцент на negative / edge. У каждого — экранное состояние, на котором кейс виден.

happy штатный путь neg запрет / отказ edge крайний случай
ReqТипТест-кейсЭкранное состояние
R1happyРазделы всех 4 типов → 4 виджета разного типа в фикс. порядкеДашборд
R1edgeРаздел A без заказов за 12 мес → виджет с нулями, не исчезаетПусто · разделы / R10
R2happyРаздел C, 23 мероприятия → первые 20 + «Показать ещё»Список + поиск
R2negРаздел без мероприятий за окно → «нет мероприятий за период»Пусто · мероприятия
R3happyТовары ИП + РТВ + Озаригн-Глобал → ₽ и € раздельно, два «Всего»Карточка (по сайту + итоги)
R3happy3 ценовых сектора → 3 строки секторов со своим счётом и суммойКарточка (по сектору)
R3negМероприятие без заказов → все строки нули, карточка живётКарточка без заказов
R3edgeТовар снят с продажи, исторические оплаты есть → строка с бейджем «снят» и историч. цифрамиКарточка · Сектор C «снят»
R3edgeОчень длинное название → полное в карточке (переносится)Карточка (шапка) · DQ-5
R7happy«Обновить» → цифры на момент нажатия, метка «Обновлено» обновиласьКнопка ⟳ справа вверху
R8negПользователь не в группе → экран отказа, цифры не отдаютсяОтказ в доступе
R8edgeГруппу сняли в активной сессии → сессия живёт, новый вход — отказОтказ в доступе (текст про след. вход)
R10happyМероприятие без оплат → разрезы = 0, итог = 0, без ошибкиКарточка без заказов
R13happyA на 3 сайтах в ₽ и € → две суммы раздельноДашборд · WidgetA
R14happyСерия 5 лет → 5 строк, текущий год выделенДашборд · WidgetB «сейчас»
R14edgeГод без мероприятий в окне → строка с нулями, не скрытаДашборд · WidgetB (нулевая строка)
R15happyВиджет C → кол-во, последнее, итог; нажатие открывает списокДашборд · WidgetC → Список
R10edgeРаздел A без оплат за 12 мес → виджет с нулями, не скрываетсяВиджет с нулями
R16happyПодписки с оплатами в ₽ и € → ₽ над € стопкой в виджете, тарифе, итогеПодписки · WidgetD + «На год» · итог
R16negD без подписок и продаж → нули, дельты по правилам R17Дельта · прочерк
R16edgeРаздел запущен в текущем месяце → «месяц к месяцу» прочеркомДельта · прочерк
R17happyРост 30% в прошлом месяце → «+30%» + база «к пред. месяцу»Подписки · WidgetD
R17negНет прошлого года (новый раздел) → «год к году» = н/д, прочеркДельта · прочерк
R17edgeВ прошлом месяце 0, в этом 10 → абсолют «+N», без % (нет деления на 0)Дельта · деление /0 «рост с нуля»
R17edgeОба периода = 0 → прочерк «без активности · н/д»; отличается от «нет базы»Дельта · оба = 0
R18happy3 актуальных тарифа + 1 снят → 4 строки + «Всего»Подписки · таблица тарифов
R18happyТариф с оплатами в евро → ₽ над € стопкой в строке тарифа и в «Всего»Подписки · «На год» · итог
R18edgeТариф снят с продажи, активные подписки есть → строка с активными и нулём по продажамПодписки · тариф «снят»
R19happyКаждый раздел отрисован виджетом своего типаДашборд · бейдж типа A/B/C/D
R20happyПоиск «Январский» + диапазон дат → пересечение условийСписок + поиск · чипы фильтра
R20negПустой результат → «ничего не найдено», пагинация скрытаПустой поиск
R20edgeПоиск дополнен во время 2-й порции → сброс к первой порцииСписок + поиск (сброс shown)
R21happy23 при порции 20 → 20 + 3, после второго нажатия кнопка скрытаСписок + поиск · «показано N из M»
R21edgeКол-во ровно = порции → кнопка не показываетсяСписок + поиск (фильтр до 20)
NFR-1edgeИсточник недоступен → последние данные + пометка «устаревшие»; ⟳ доступнаОшибка источника
NFR-6edgeНет сети → состояние «Нет сети», цифры не выдаются за актуальные; «Повторить»Нет сети
NFR-9happyВсе даты и метка «Обновлено» — в UTC+3 (МСК)Подвал на каждом экране · «(МСК)»
Бэкенд-кейсы без экрана. Кейсы R4 / R5 / R6 / R11 / R22 (суточный цикл, группировка, ручной маппинг, защита правок, обработка изменений свойств) проверяются на стороне Битрикса и SQL, не в PWA — по требованиям список «непривязанных» и правки маппинга ведутся в админке Битрикса (R12 убран, T8). Их видимый след в приложении — появление/исчезновение мероприятий в списке (R2) и разрезы в карточке (R3); они покрыты выше.
04 / Трассировка

Требование → экран

Каждое R легло на экран либо явно отнесено к бэкенду.

есть UI в прототипе бэкенд / вне приложения якорь + открытый вопрос
ReqЧто требуетТочка на экране
R1Главный дашборд, виджеты в фикс. порядкеВкладка «Дашборд»
R2Список мероприятий, сортировка свежие сверху, окно периода снято (B-2). Вкладка «Мероприятия» — общий список всех разделов с подписью раздела на каждой строке; клик на виджет дашборда — список конкретного раздела.Вкладка «Мероприятия» / клик на WidgetA/B/C
R3Карточка: разрезы, две валюты стопкой (B-1), «Всего» по каждой валюте отдельно. Расширение: блок «По дням» для многодневных мероприятий (кол-во участников по билету на день).Карточка мероприятия · «Итог», «По дням», «По сектору», «По сайту»
R4Авто-появление из каталога (суточный цикл)Бэкенд; след — новые строки в списке
R5Группировка товаров в мероприятиеБэкенд; след — разрезы в карточке (R3)
R6Ручной маппинг товар↔мероприятиеАдминка Битрикса (вне PWA, T4-b)
R7Принудительное обновлениеКнопка ⟳ справа вверху + тост ошибки
R8Доступ по группе, экран отказаЭкран «Отказ в доступе»
R9Видимая свежесть данныхПодвал «Обновлено» на каждом экране
R10Корректное отображение нулей, в т.ч. виджет с нулями (B-3)«Карточка без заказов», «Виджет с нулями», пустые состояния
R11Защита ручных правок от автоБэкенд; нет UI
R13Виджет A «накопительный»; кликабелен → список своих мероприятийДашборд · WidgetA → Список (Радаст Кипр)
R14Виджет B «год к году», текущий выделен; кликабелен → список своих мероприятийДашборд · WidgetB → Список (РадасТВ)
R15Виджет C «каталог», нажатие → списокДашборд · WidgetC → Список (Озарины)
R16Виджет D «подписочный», 3 метрики + 2 дельты, ₽/€ стопкой если есть евро (B-5)Дашборд · WidgetD / Подписки
R17Две дельты для D, знак + база; состояния «прочерк», «деление /0», «оба = 0» (B-4)WidgetD · 3 сценария дельт
R18Разбивка по тарифам + «Всего» по каждой валюте отдельно (B-5)Вкладка «Подписки» · таблица + итог
R19Тип раздела — атрибутБейдж типа A/B/C/D на каждом виджете
R20Поиск + фильтр по диапазону датПанель над списком + чипы
R21Пагинация «Показать ещё»Плашка со счётчиком N из M
R22Изменения свойств → уведомления админу. Финал: в PWA только бейдж-индикатор + ссылка в админку Битрикса; отдельного интерфейса нетМеню · «Требуют сверки» (бейдж + ссылка)
NFR с UI-следом: NFR-1 — «Загрузка» + «Ошибка источника»; NFR-3 — весь интерфейс на русском; NFR-4 — мобильный форм-фактор (390×844); NFR-6 — состояние «Нет сети»; NFR-9 — метки «(МСК)». NFR-2/5/7/8 — без UI.
05 / Обратная проверка

UI без требования

Каждый видимый элемент восходит к требованию или к утверждённому паттерну/решению.

Элемент интерфейсаОснование
Нижняя навигация (4 вкладки)DQ-1 · дизайн-заметки
Кнопка ⟳ справа вверхуR7 + паттерн текущего PWA
Подвал «Обновлено … (МСК)»R9 · NFR-9
Цветовая кодировка строк (violet ₽ / emerald €)Паттерн PWA + семантика валют R3
Бейдж типа A/B/C/DR19
Бейдж «сейчас» на текущем годеR14 (текущий год выделен)
Плашки-выводы (лавандовые)Паттерн дизайн-системы Integramma (editorial), не данные
Статус-бар, home-indicatorХром устройства NFR-4, не функция
Пункт «Требуют сверки» в менюR22 финал: в PWA только бейдж-индикатор; вся работа в админке Битрикса (B-9)
Закрыто: R22 — финал (бейдж-индикатор, B-9); DQ-4 — стопкой везде (B-1); R2 — окно периода в списке снято (B-2); DQ-3 — упрощено до «0» без бейджа «рост с нуля»; тёмная тема — принята как часть дизайн-системы Integramma v1.1. Открытых вопросов уровня требований нет.